refresh_cursor(x, y);
break;
case XENKBD_TYPE_POS:
- printk("pos x:%d y:%d z:%d\n",
+ printk("pos x:%d y:%d dz:%d\n",
event.pos.abs_x,
event.pos.abs_y,
- event.pos.abs_z);
+ event.pos.rel_z);
x = event.pos.abs_x;
y = event.pos.abs_y;
- z = event.pos.abs_z;
+ z = event.pos.rel_z;
clip_cursor(&x, &y);
refresh_cursor(x, y);
break;
int n, i;
DisplayState *s = opaque;
static int buttons;
- static int x, y, z;
+ static int x, y;
n = kbdfront_receive(kbd_dev, buf, KBD_NUM_BATCH);
for (i = 0; i < n; i++) {
{
int new_x = buf[i].pos.abs_x;
int new_y = buf[i].pos.abs_y;
- int new_z = buf[i].pos.abs_z;
if (new_x >= s->width)
new_x = s->width - 1;
if (new_y >= s->height)
kbd_mouse_event(
new_x * 0x7FFF / (s->width - 1),
new_y * 0x7FFF / (s->height - 1),
- new_z,
+ buf[i].pos.rel_z,
buttons);
} else {
kbd_mouse_event(
new_x - x,
new_y - y,
- new_z - z,
+ buf[i].pos.rel_z,
buttons);
}
x = new_x;
y = new_y;
- z = new_z;
break;
}
kbd_mouse_event(
x * 0x7FFF / s->width,
y * 0x7FFF / s->height,
- z,
+ 0,
buttons);
else
kbd_mouse_event(0, 0, 0, buttons);